草庐IT

Android ContentProvider 与 ORMLite

全部标签

java - Android 的 ORMLite 不会使用 foreignAutoRefresh 自动刷新外部对象

这是我的问题:我有不同的实体链接到其他实体,嵌套深度最多为3。我在每个对象中的所有外部字段都用注释@DatabaseField(foreign=true,foreignAutoRefresh=true)但只有达到2的嵌套深度时,我才会得到实际的自动刷新外来对象。例如,如果我查询一个A实体,然后我会这样做:A.getB().getC().getD()对于实体B和C,我已经拥有所有字段,而对于实体D,我只获取了ID,我需要调用dao.refresh()方法来获取所有D字段。这是一个限制吗?我在文档中找不到任何相关信息。 最佳答案 编辑:

android - OrmLite Android 中 int 的默认值

我想知道如何在OrmLiteforAndroid的DatabaseField中为int设置defualtvalue。我试过:@DatabaseField(defaultValue=0)intintValue;但我得到的只是一个编译错误。或者你甚至可以用int来做到这一点? 最佳答案 您可以简单地为类中的intValue赋值。@DatabaseField()intintValue=10;默认情况下,这会使intValue为10,直到您将其设置为其他值。 关于android-OrmLiteA

android - ORMlite 没有返回我刚刚保存的对象

这是我失败的代码(它在一个Activity中运行,数据库助手在数据库中创建了WishList对象)DatabaseHelperhelper=DatabaseHelper.getInstance(getActivity());intsavedID=0;WishListwl=newWishList();wl.setName("abc");try{savedID=helper.getWishListDao().create(wl);WishListwl_saved=helper.getWishListDao().queryForId(savedID);wl_saved.getId();}ca

android - Android 上的 ORMLite 使用 javax.persistence 注释

我们已经开发了一个网络服务,现在正在构建一个Android应用程序来与网络服务通信。我们在我们的网络服务中使用持久性,也想在我们的Android应用程序中使用持久性。我们认为ORMLite是在Android上实现持久性的方式,我们希望javax.persistence支持对我们的应用程序来说足够好。我希望能够将Web服务的数据模型复制到Android应用程序,而不必修改注释。所以我尝试复制模型类并将ormlite-android-4.41.jar和ormlite-core-4.41.jar添加到我的Android项目中。不幸的是,这并没有奏效。我的IDE找不到javax.persist

android - 带报价的 ORMLite 查询,Android

我正在使用ORMLite,使用表RecentSearch:@DatabaseTable(tableName=LocalStorageConfig.SQL_RECENTS_TABLE_NAME)publicclassRecentSearch{@DatabaseFieldpublicStringsearch_text;publicstaticStringSQL_SEARCH_FIELD="search_text";@DatabaseFieldpublicStringlocation_text;publicstaticStringSQL_LOCATION_FIELD="location_te

android - ORMLite - CallBatchTasks() 单独或一次用于所有更新?

我在Android上使用ORMLite,并且有7个表,我需要在其中创建/更新多个条目。目前我在我的每个dao上分别使用callBatchTasks()方法来执行此操作,但我想知道仅使用一个dao的callBatchTasks()来处理所有的更新?这会加快这个过程吗? 最佳答案 有趣的问题。用ORMLite在Android下,所有的DAO都使用同一个数据库的同一个连接。因此,虽然它看起来有点粗糙,但您当然可以使用单个fooDao.callBatchTasks()调用来更新Foo、Bar和Baz表。这会禁用连接上的自动提交,将您想要的任

android - ORMLite 中的集合

你好我想在我的android应用程序中使用ORMlite保留一些集合数据。例如:classPerson{@DatabaseField(generatedId=true)privateintid;@DatabaseFieldprivateStringname;@DatabaseFieldprivateStringsurname;@ForeignCollectionFieldprivateCollectionsphones;}classPhone{@DatabaseField(generatedId=true)privateintid;@DatabaseFieldprivateString

java - 在 ORMLite 中为一个类创建多个表

我在Android上使用ORMLite并有以下问题:是否可以基于单个Java类创建多个表?表应该只在名称上有所不同,对它们的访问应该通过名称。例如,如果我有一个类:publicclassOrder{@DatabaseFieldpublicstringName;@DatabaseFieldpublicstringAmount;}而且我有一个动态数量的模块可以创建订单。我希望每个模块都有自己的表,但所有表都应该有相似的架构。我知道我可以在Order类中添加一个字段来指示源模块名称,并将所有订单放在一个表中,但我想知道是否有一种方法来分隔表(为了更快的查询,更快的删除来自同一模块的订单等等)

java - ORMLite JOINs,或 rawQuery 自动映射

我正在寻找一种方法来执行需要JOIN的查询。有没有办法在准备好的语句中执行此操作,或者rawQuery是我唯一的选择。如果rawQuery是唯一的选择,那么是否有某种方法可以自动将返回的对象映射到正在实现的Dao的对象。我浏览了文档和示例,但找不到任何可以让我将原始数据库结果映射到ORM对象类的东西。 最佳答案 IamlookingforawaytodoaquerythatrequiresaJOIN.ORMLite支持simpleJOINqueries.您也可以使用raw-queries来完成这个。您可以使用Dao.getRawRo

android - 如何将 Ormlite 与 LoaderManager 一起使用

我在我的Android应用程序中成功使用了OrmLite。我正在将我的应用程序迁移到新的CursorLoader逻辑,我想知道如何在没有ContentProvider的情况下将Ormlite与CursorLoader一起使用。这不可能吗? 最佳答案 我认为最好的解决方案是为CursorLoader实现子类,并在loadInBackground()中从ORM获取和返回游标。在我的例子中是这样的@OverridepublicCursorloadInBackground(){...Daodao=mHelper.getDao();Query